Triển khai Pascal_(ngôn_ngữ_lập_trình)

Trình biên dịch Pascal ban đầu

Trình biên dịch Pascal đầu tiên được thiết kế trong Zürich cho dòng máy tính lớn CDC 6000, được viết và xây dựng tại Đại học Illinois dưới sự chỉ đạo của Donald B. Gillies cho loại máy tính PDP-11 và ngay từ lúc này đã có thể sinh ra mã máy trực tiếp. Niklaus Wirth báo cáo rằng một nỗ lực đầu tiên để thực hiện nó ở Fortran năm 1969 đã không thành công do Fortran không đủ khả năng thể hiện cấu trúc dữ liệu phức tạp. Nỗ lực thứ hai được thực hiện bằng ngôn ngữ giống ngôn ngữ C (Scallop của Max Engeli) và sau đó được dịch bằng tay (bởi R. Schild) thành Pascal để khởi động. Nó hoạt động vào giữa năm 1970. Nhiều trình biên dịch Pascal vì đã tự lưu trữ, có nghĩa là trình biên dịch được viết bằng Pascal và trình biên dịch thường có khả năng biên dịch lại khi các tính năng mới được thêm vào ngôn ngữ, hoặc khi trình biên dịch được chuyển đến môi trường mới. Trình biên dịch GNU Pascal là một ngoại lệ đáng chú ý, được viết bằng ngôn ngữ C.

Thành công đầu tiên của trình biên dịch CDC Pascal đến từ một máy tính lớn khác được hoàn thành bởi Welsh và Quinn tại Đại học Queen's Belfast (QUB) vào năm 1972. Trình biên dịch này, lần lượt, là cha mẹ của trình biên dịch Pascal cho máy tính mini đa hệ thống thông tin (ICS). Cổng Multum được phát triển - với mục đích sử dụng Pascal như một ngôn ngữ lập trình hệ thống - bởi Findlay, Cupples, Cavouras và Davis, làm việc tại Khoa Khoa học Máy tính tại Đại học Glasgow. Người ta nghĩ rằng Multum Pascal, được hoàn thành vào mùa hè năm 1973, có thể đã được thực hiện 16-bit đầu tiên.

Một trình biên dịch hoàn toàn mới được hoàn thành bởi Welsh et al. tại QUB năm 1977. Nó cung cấp một tính năng chẩn đoán ngôn ngữ nguồn (kết hợp các lược đồ định hình, truy tìm và nhận dạng được định dạng kiểu) được triển khai bởi Findlay và Watt tại Đại học Glasgow. Việc triển khai này được chuyển vào năm 1980 cho dòng ICL 2900 của một nhóm có trụ sở tại Đại học Southampton và Đại học Glasgow.

Đầu thập niên 1980, UCSD Pascal đã có phiên bản dành cho các máy Apple IIApple III để có các phiên bản tương ứng thay thế trình thông dịch BASIC đi kèm với các loại máy này trong thời gian trước đó.

Việc thực hiện mô hình chuẩn Pascal cũng dựa trên trình biên dịch này, đã được điều chỉnh bởi Welsh và Hay tại Đại học Manchester vào năm 1984, để kiểm tra nghiêm ngặt sự phù hợp với tiêu chuẩn BSI 6192 / ISO 7185 và tạo mã cho một máy trừu tượng di động.

Trình biên dịch giá rẻ của Borland đã gây ra ảnh hưởng lớn đến cộng đồng lập trình viên Pascal, họ hầu như tập trung hết vào lập trình cho máy IBM-PC trong những năm cuối thập niên 1980. Rất nhiều người cũng đã sử dụng sản phẩm này thay cho BASIC.

Hệ thống Pascal-P

Để nhanh chóng phổ biến rộng rãi ngôn ngữ này, một bộ công cụ chuyển mã được viết tại Zurich bao gồm một trình biên dịch sang "mã máy ảo" (hay dễ hiểu hơn, mã trung gian giữa mã máy và mã nguồn), và bộ giả lập cho loại mã này. Bộ công cụ này sau đó trở thành hệ thống giả (P-system). Mặc dù hệ thống này được phát triển nhằm tạo ra các trình biên dịch sinh mã máy trên ít nhất một hệ thống, nhưng kết quả đáng kể nhất chỉ là trình thông dịch cho hệ thống giả UCSD. Các trình biên dịch hệ thống P được gọi là Pascal-P1, Pascal-P2, Pascal-P3 và Pascal-P4. Pascal-P1 là phiên bản đầu tiên, và Pascal-P4 là người trình biên dịch cuối cùng của nhóm tại Zurich. Phiên bản được gọi là Pascal-P1 được đặt ra sau để nhiều nguồn khác nhau cho Pascal-P tồn tại. Trình biên dịch được thiết kế lại để nâng cao tính di động và được phát hành dưới dạng Pascal-P2. Mã này sau đó được cải tiến để trở thành Pascal-P3, với một mã trung gian tương thích ngược với Pascal-P2 và Pascal-P4.

Trình biên dịch Pascal-P4 vẫn có thể chạy và biên dịch trên các hệ thống tương thích với Pascal gốc. Tuy nhiên, nó chỉ chấp nhận một tập con của ngôn ngữ Pascal.

Pascal-P5, được tạo ra bên ngoài nhóm Zurich, sử dụng ngôn ngữ Pascal đầy đủ và bao gồm khả năng tương thích ISO 7185.

UCSD Pascal phân nhánh Pascal-P2, nơi Kenneth Bowles sử dụng nó để tạo ra hệ thống p UCSD giải thích. Hệ thống p UCSD là một trong ba hệ điều hành có sẵn khi ra mắt Máy tính cá nhân IBM gốc. UCSD Pascal đã sử dụng một mã trung gian dựa trên các giá trị byte, và do đó là một trong những trình biên dịch mã byte đầu tiên. Pascal-P1 không thông qua Pascal-P4, mà là dựa trên chiều dài từ CDC 6600 60 bit.

Trình biên dịch dựa trên trình biên dịch Pascal-P4, đã tạo ra các tệp nhị phân gốc, được phát hành cho máy tính lớn IBM System / 370 của Ủy ban Năng lượng Nguyên tử Úc (Australian Atomic Energy Commission); nó được gọi là "AAEC Pascal Compiler".

Vào đầu những năm 1980, Watcom Pascal đã được phát triển, cũng cho hệ thống IBM 370.

Vào những năm 1990, Pascal vẫn đang chạy trên các thiết bị VAX tại Đại học George Mason để dạy lập trình máy tính.

Object Pascal

Apple Computer đã tạo ra Lisa Pascal của riêng mình cho Lisa Workshop vào năm 1982 và chuyển trình biên dịch sang Apple Macintosh và MPW năm 1985. Năm 1985, Larry Tesler, tham vấn với Niklaus Wirth, đã định nghĩa Object Pascal và các phần mở rộng này được tích hợp trong cả trình biên dịch Lisa Pascal và Mac Pascal.

Borland quyết định cần phải có nhiều tính năng hướng đối tượng tinh vi và phức tạp hơn, và đã bắt đầu sản phẩm Delphi, sử dụng sơ đồ thiết kế của Object Pascal do Apple đưa ra làm cơ sở. (Sơ đồ của Apple vẫn chưa phải là chuẩn.) Borland cũng gọi đây là Object Pascal trong phiên bản Delphi đầu tiên nhưng đổi tên thành Delphi trong các phiên bản sau đó. Các bổ sung chính so với các phần mở rộng lập trình hướng đối tượng trước là mô hình đối tượng, các hàm dựng và hàm hủy ảo, các thuộc tính đều mang tính tham chiếu. Có một vài trình biên dịch khác cũng hỗ trợ các tính năng này.

Turbo Pascal

Turbo Pascal và các sản phẩm tương tự, bằng các khái niệm đơn vị (unit) hay mô-đun (module) hình thành nên các ngôn ngữ lập trình cấu trúc. Turbo Pascal lấy các khái niệm này từ chuẩn của Extended Pascal hay từ người kế vị Modula-2. Mặc dù vậy nó vẫn không cung cấp khái niệm các mô-đun lồng nhau hay các ký hiệu rõ ràng về hàm nhập và hàm xuất.

Trong thập niên 1980, Anders Hejlsberg đã viết trình biên dịch Blue Label Pascal dành cho dòng máy tính Nascom-2. Sau đó ông chuyển sang làm việc cho hãng Borland và viết lại hoàn toàn trình biên dịch này để rồi trở thành Turbo Pascal cho máy tính IBM-PC. Trình biên dịch mới này bán với giá chỉ có $49.95, rẻ hơn nhiều so với giá Hejlsberg trước đây rao bán sản phẩm Blue Label Pascal. Nó được viết và tối ưu hóa hoàn toàn bằng hợp ngữ, làm cho nó nhỏ hơn và nhanh hơn.

Năm 1986, Anders chuyển Turbo Pascal sang Macintosh và kết hợp các phần mở rộng Object Pascal của Apple vào Turbo Pascal. Những phần mở rộng này sau đó được thêm trở lại vào phiên bản PC của Turbo Pascal cho phiên bản 5.5. Đồng thời Microsoft cũng đã triển khai trình biên dịch Object Pascal. Turbo Pascal 5.5 có ảnh hưởng lớn đến cộng đồng Pascal, bắt đầu tập trung chủ yếu vào máy tính IBM vào cuối những năm 1980. Nhiều người yêu thích PC trong việc tìm kiếm một sự thay thế có cấu trúc cho BASIC đã sử dụng sản phẩm này. Nó cũng bắt đầu được chấp nhận bởi các nhà phát triển chuyên nghiệp. Khoảng thời gian đó, một số khái niệm được nhập ngôn ngữ C để cho phép các lập trình viên Pascal sử dụng API dựa trên C của Microsoft Windows trực tiếp. Các phần mở rộng này bao gồm các chuỗi, con trỏ số học, con trỏ hàm, một toán tử địa chỉ và các kiểu gõ không an toàn.

Turbo Pascal, và các dẫn xuất khác với các đơn vị hoặc các khái niệm mô-đun là các ngôn ngữ mô-đun. Tuy nhiên, nó không cung cấp khái niệm mô-đun lồng nhau hoặc nhập và xuất đủ điều kiện các ký hiệu cụ thể.

Các phiên bản của Turbo Pascal

  • Phiên bản 2.0: So với Pascal chuẩn, Turbo Pascal Version 2.0 có những mở rộng về các biến động, các biến địa chỉ tuyệt đối, Các phép toán trên bit và byte, các phép toán logic trên số nguyên, Kết nối các chương trình với các biến chung,...
  • Phiên bản 3.0: là một hệ thống phát triển gồm những đặc điểm của version 2.0 và có nhiều mở rộng quan trọng như: Bổ sung nhiều thủ tục và hàm chuẩn. Bổ sung một vài dạng đặc biệt mới cho phép tính toán các số thực với độ chính xác lớn,... So với version 2.0 thì version 3.0 có tốc độ dịch gấp đôi.
  • Phiên bản 4.0: có đặc điểm là có thêm một số dữ liệu mới, thực hiện các biểu thức logic nhanh hơn, có nhiều thủ tục và hàm chuẩn về xử lý đồ họa đồ thị màu sắc hình khối cửa sổ,...
  • Phiên bản 5.0 và 5.5: Năm 1989, hãng Borland đưa ra thị trường phiên bản Turbo Pascal Version 5.0 để giới thiệu các thủ tục và hàm tiện nghi. Tiếp đó chưa đầy nửa năm họ đưa ra version 5.5 có thêm cấu trúc hoàn toàn mới, đó là lập trình đối tượng.
  • Phiên bản 6.0: Đặc điểm nổi bật của version này là giới thiệu thành phần của Turbo vision, một thư viện chương trình cụ thể, định hình có các cửa sổ tiện ích để đối chiếu với nhau.
  • Phiên bản 7.0: Cuối năm 1992, hãng Borland lại đưa ra version 7.0 để chạy trong tất cả hệ điều hành kể cả Windows
  • phiên bản 7.1: tương tự bản 7.0.1
  • phiên bản 7.2: Ra mắt năm 2000.

Các biến thể khác

Super Pascal là một biến thể của Pascal, bổ sung nhãn không có số, trả lại biểu thức hay mệnh đề là tên của kiểu dữ liệu.

Các trường đại học Wisconsin-Madison, Zürich, Karlsruhe và Wuppertal đã phát triển các trình biên dịch Pascal-SC và Pascal-XSC, nhằm lập trình tính toán số.

TMT Pascal trình biên dịch tương thích Borland đầu tiên cho chế độ bảo vệ DOS 32-bit, hệ điều hành OS/2 và Win32. Ngoài ra ngôn ngữ TMT Pascal là ngôn ngữ đầu tiên cho phép quá tải hàm và toán tử. Pascal-SC ban đầu nhắm vào bộ vi xử lý Z80, nhưng sau này được viết lại cho DOS (x86) và 68000. Pascal-XSC có lúc được chuyển sang Unix (Linux, SunOS, HP-UX, AIX) và Microsoft / IBM (DOS với Hệ điều hành EMX, OS/2, Windows). Nó hoạt động bằng cách tạo mã nguồn trung gian C, sau đó được biên dịch thành một tệp thực thi nguyên gốc. Một số phần mở rộng ngôn ngữ Pascal-SC đã được chấp nhận bởi GNU Pascal.

Pascal Sol được thiết kế vào khoảng năm 1983 bởi một nhóm người Pháp để thực hiện một hệ thống giống Unix có tên Sol. Đó là tiêu chuẩn Pascal level-1 (với giới hạn mảng tham số) nhưng định nghĩa cho phép từ khóa thay thế và định danh được xác định trước bằng tiếng Pháp và ngôn ngữ bao gồm một vài phần mở rộng để giảm bớt lập trình hệ thống. Nhóm Sol sau này đã chuyển sang dự án ChorusOS để thiết kế một hệ điều hành phân tán.

IP Pascal là một triển khai thực hiện ngôn ngữ lập trình Pascal bằng cách sử dụng Micropolis DOS, nhưng đã được chuyển nhanh sang CP/M-80 chạy trên Z80. Nó đã được chuyển sang các kiểu máy 80386 vào năm 1994, và tồn tại ngày nay như các triển khai Windows/XPLinux. Trong năm 2008, hệ thống đã được đưa lên một cấp độ mới và ngôn ngữ kết quả được gọi là "Pascaline" (sau khi máy tính của Pascal). Nó bao gồm các đối tượng, các điều khiển vùng tên, mảng động, cùng với nhiều phần mở rộng khác, và thường có tính năng bảo vệ và chức năng giống như C #. Nó là chỉ thực hiện như vậy cũng tương thích với việc thực hiện Pascal ban đầu, được chuẩn hóa theo tiêu chuẩn ISO 7185.

Smart Mobile Studio được tạo ra bởi Jon Aasenden và biên dịch phương ngữ riêng của mình về Object Pascal thành HTML5/Javascript.